Life and work have become busy as economy develops rapidly in recent decades. Information exchange among people also becomes often. A wide variety of portable electronic products (e.g., digital cameras, PDAs (personal digital assistants)) and mobile communication products are commercially available as electronics and communication industries advance. The fast development of such new products not only brings a lot of convenience but also is closely associated with our daily life and work. Thus, it is impossible of doing without them. Moreover, such products are provided with many advanced and ergonomic features meeting the needs of consumers.
Conventionally, these electronic products are equipped with high-capacity memory for storing ever increasing data in operation. Typically, a low-capacity memory is provided in the electronic products due to factors such as cost and space. The low-capacity memory is fast to access but its cost is relatively expensive. Thus, a type of inexpensive high-capacity memory (e.g., MMC (Multi-Media Card) or SD (Secure Digital)) is employed as auxiliary storage (i.e., expansion memory) of the electronic products.
Currently, Microsoft's Windows and Linux are two most popular operating systems (OSs) throughout the world. Most people are familiar with Windows. This is because more than 90% of PCs (personal computers) in the world are installed with Windows. Both Linux and Windows are designed to run on PCs. Linux was developed by Linus Torvalds and others in 1990. Linux is derived from UNIX and is highly compatible therewith. Linux has different kernels and file systems. Copies (i.e., source codes) of Linux are given away free. Thus, many applications, drivers, utilities, and free software are developed from Linux operating system and they are given free of charge to others. MMC and SD are also supported (i.e., driven) by Linux and thus reading or writing operation can be performed on them by running Linux.
However, reading or writing operation performed on MMC or SD is done by a single data block rather than a plurality of data blocks per unit time due to limitation of Linux kernels and other technological reasons. As such, reading speed in Linux kernels is faster but writing speed is much lower. This in turn causes inconvenience in using MMC or SD.
Following is a detailed description of drivers under Linux. The drivers are comprised of a character device, a block device, and a network device. Each of MMC and SD is the block device. Referring to FIG. 1, there is shown a simplified diagram of writing data into MMC or SD under Linux. Data to be written is placed on a plurality of discreet blocks 10 of a high-speed buffer under Linux. Data in the blocks 10 is moved to a continuous data 11 of MMC or SD (as indicated by arrows in FIG. 1) step by step in a writing operation. Data in the blocks 10 is moved to a writing card (e.g., loading card) as a whole (i.e., synchronous) only in a writing operation of the card. This is also called “sync” operation.
In a “sync” operation, a data block is requested in every writing operation under Linux. The size of a data block is 1024B for MMC or SD.
Device parameters of MMC or SD are configured before data writing. Next, the device is activated to position tracks. Data begins to transfer from the blocks to a target area. The device is disabled after completing the data transfer.
It is found from the above test that time spent in transferring data is much less than a sum of time spent in activation, track positioning, and deactivation. In other words, much time is spent on preparation rather than data transfer which only occupies a very small percentage of the whole time. This is the reason why data writing speed is very slow.
The inventor is aware of the above problem and is dedicated to meet market needs. The inventor thus spends a lot of time to research Linux kernels in order to improve speed of writing data into MMC or SD and thus facilitate the use of MMC or SD.